From cb059bfc1b5cdcdf41e9b908e70d0b71c25e65c8 Mon Sep 17 00:00:00 2001 From: Carlos Garnacho Date: Wed, 4 Jun 2014 12:56:57 +0200 Subject: [PATCH] widget: Set GDK_BUTTON1_MASK on emulated pointer events The touch_event handler was missing those when emulating pointer events for the widgets that get GDK_TOUCH_MASK set, but have no specialized touch handlers. --- gtk/gtkwidget.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/gtk/gtkwidget.c b/gtk/gtkwidget.c index 2aa5acc2e0..39c0338d39 100644 --- a/gtk/gtkwidget.c +++ b/gtk/gtkwidget.c @@ -7218,6 +7218,9 @@ gtk_widget_real_touch_event (GtkWidget *widget, bevent->button.axes = g_memdup (event->axes, sizeof (gdouble) * gdk_device_get_n_axes (event->device)); gdk_event_set_source_device (bevent, gdk_event_get_source_device ((GdkEvent*)event)); + + if (event->type == GDK_TOUCH_END) + bevent->button.state |= GDK_BUTTON1_MASK; } else if (event->type == GDK_TOUCH_UPDATE) { @@ -7226,7 +7229,7 @@ gtk_widget_real_touch_event (GtkWidget *widget, bevent->any.window = g_object_ref (event->window); bevent->any.send_event = FALSE; bevent->motion.time = event->time; - bevent->motion.state = event->state; + bevent->motion.state = event->state | GDK_BUTTON1_MASK; bevent->motion.x_root = event->x_root; bevent->motion.y_root = event->y_root; bevent->motion.x = event->x; -- 2.30.2